"""
基础音频I/O模块
- 提供加载与保存音频的通用函数
- 依据文件扩展名推断格式，封装 pydub 的 AudioSegment.from_file/export
"""

from pydub import AudioSegment
import os


def load_audio(file_path: str) -> AudioSegment:
    """
    加载音频文件

    参数:
        file_path: 音频文件路径

    返回:
        AudioSegment 对象，代表内存中的音频数据
    """
    ext = os.path.splitext(file_path)[1].lower().strip('.')
    return AudioSegment.from_file(file_path, format=ext)


def save_audio(audio: AudioSegment, output_path: str) -> None:
    """
    保存音频文件

    参数:
        audio: 要保存的 AudioSegment 对象
        output_path: 输出文件路径（通过扩展名决定保存格式）
    """
    ext = os.path.splitext(output_path)[1].lower().strip('.')
    audio.export(output_path, format=ext)